package com.xusheng.cli.mapper;

import com.xusheng.cli.common.base.MyBaseMapper;
import com.xusheng.cli.entity.roleModule.Role;

import java.util.List;
import java.util.Map;

/**
 * 角色表(Role)表数据库访问层
 *
 * @author jy
 * @since 2022-01-17 15:02:43
 */
public interface RoleMapper extends MyBaseMapper<Role> {

	List<String> getRolesByUserId(Long userId);

	/**
	 * 移除当前角色已选权限
	 *
	 * @param id 角色id
	 * @return
	 * @author jy
	 * @since 2022/1/17 15:07
	 */
	void removeRolePermissionForRole(Long id);

	/**
	 * 给指定角色分配权限
	 *
	 * @param dataList
	 * @return
	 * @author jy
	 * @since 2022/1/17 15:09
	 */
	int assignmentPermissionForRole(List<Map<String, Object>> dataList);

	/**
	 * 获取当前角色已选的权限
	 *
	 * @param id
	 * @return
	 */
	List<Long> listCheckedPermissionForRole(Long id);

	/**
	 * 获取用户关联的角色
	 *
	 * @param id 用户id
	 * @return
	 * @author jy
	 * @since 2022/1/17 15:19
	 */
	List<Long> getRoleByUserId(Long id);

	/**
	 * 通过角色code查询角色的所有权限
	 *
	 * @param code 角色code
	 * @return 权限code
	 * @author jy
	 * @since 2021/11/17 17:12
	 */
	List<String> permissionCodeByRoleCode(String code);

}

